<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
   //作业1：数组扁平化  将多维数组转化成一维数组
    // var arr = [1, [2, [3, [4, 5, [6, 7, 8, [9, 10]]]]]]
    // console.log(arr.join(''))        //12,3,4,5,6,7,8,9,10
    // console.log(arr.join(','))       //1,2,3,4,5,6,7,8,9,10
    // console.log(arr.join(',').split(''))
    // //(20) ["1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6", ",", "7", ",", "8", ",", "9", ",", "1", "0"]
    // console.log(arr.join(',').split(','))   //(10) ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
    // console.log(arr.join(',').split(',').map(function (value, index, arry) {
    //     return +value
    // }))                                   //(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


    //数组下面flat方法可以直接做扁平化
    // console.log(arr.flat(6))               //(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    // console.log(arr.flat(Infinity))        //(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


    //作业2..已知字符串“aabbbccdeefffgghhhiiiiijjjjjjjjj”编程实现以下功能（字符串也是类数组）
    // 统计每个字符出现的次数，显示结果;
    // 去掉重复的字符，使结果显示 abcdefghij;

    // var str = 'aabbbccdeefffgghhhiiiiijjjjjjjjj'
    // var arr = str.split('')
    // var newarr = []
    // var obj = {}
    // for (i = 0; i < arr.length; i++) {
    //     var flag = 1
    //     for (j = 0; j < newarr.length; j++) {
    //         if (arr[i] === newarr[j]) {
    //             flag = 2
    //             obj[arr[i]]++
    //         }
    //     }
    //     if (flag === 1) {
    //         newarr.push(arr[i])
    //         obj[arr[i]] = 1                 //将数组项当做对象的属性名
    //     }
    // }
    // console.log(newarr)       //(10) ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"]
    // console.log(newarr.join(''))    //abcdefghij
    // console.log(obj)              //{a: 2, b: 3, c: 2, d: 1, e: 2, …}

    // var a 
    // console.log(a)     //undefined
    // var str = 'aabbbccdeefffgghhhiiiiijjjjjjjjj'
    // var arr = str.split('')
    // console.log(arr.reduce(function (prev, curr, array) {
    //     prev[curr] = prev[curr] + 1 || 1
    //     return prev;
    // }, {}))                   //{a: 2, b: 3, c: 2, d: 1, e: 2, …}


    // 3.数字字母混合验证码(数字+大写字母+小写字母)
    // //Math.random() 随机产生0-1之间的数，不包括1,  0也几乎不存在
    // console.log(Math.random())
    // var arr = []

    //  (36) ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
    // for (i = 48; i <= 57; i++) {
    //     arr.push(String.fromCharCode(i))
    // }
    // for (i = 65; i <= 90; i++) {
    //     arr.push(String.fromCharCode(i))
    // }
    // // console.log(arr)
    // var str = ''
    // for (i = 1; i <= 6; i++) {
    //     var index = parseInt(Math.random() * arr.length)
    //     if (index > 9) {
    //         if (Math.random() > 0.5) {
    //             str += arr[index].toLowerCase()
    //         }
    //         else { str += arr[index] }

    //     }
    //     else { str += arr[index] }

    // }
    // console.log(str)



</script>